Field of the Invention
The present invention relates to image processing apparatus and method which are suitable for various kinds of printing such as character printing, photograph printing, figure printing and the like. Particularly, the present invention relates to the image processing apparatus and method which are related to a high-speed process for figure drawing.
Description of the Related Art
Conventionally, in order to draw a figure, a rendering method of extracting contour information (also called edge information) of the figure from the coordinate information or the like of the figure and forming an image based on the extracted contour information has been generally and widely used (e.g., Japanese Patent Application Laid-Open No. H04-170686). Here, the contour information is represented by a straight line, and a DDA (digital differential analyzer) algorithm has been known as a method of representing the straight line (David Rogers, “Procedural Elements for Computer Graphics”, McGraw-Hill Education).
In general, it is important in the rendering process to be able to always perform the drawing process at high speed. However, since time actually required for the rendering process changes depending on kinds and the number of figures, it is not easy to achieve the high-speed drawing process.
FIG. 1 is a graph indicating examples of changes of data process time in a print job including the above rendering process. In FIG. 1, the vertical axis shows the process time (milliseconds: ms) and the horizontal axis shows the pages of the print job. In the example of FIG. 1, it takes about 400 ms for completing the process of the first page, and it takes about 550 ms for completing the process of the second page. In FIG. 1, the line graph which is constantly changed at the respective triangular points indicates the number (relative value) of the simple figures included in the job, and the line graph which is constantly changed at the respective circular points indicates the number (relative value) of the figures other than the simple figures (called complex figures, as a matter of convenience). Here, the simple figure is a simple and plain figure such as a rectangle, a triangle, etc., and the complex figure includes a polygon more than a pentagon. Incidentally, it is assumed that the print job covering a plurality of pages is analyzed. Here, in both the case where the simple figure is included and the case where the complex image is included, it can be confirmed that these cases basically have the similar correlations in regard to the number of graphic objects although the data process time is different from each other. Many kinds of techniques intended to increase rendering process speed for the data group such as the above print job have been proposed (e.g., Japanese Patent Application Laid-Open No. 2003-51019, Japanese Patent Application Laid-Open No. 2011-34139 and Japanese Patent Application Laid-Open No. 2006-155308).
FIG. 2 is a block diagram illustrating the configuration of a conventional image processing apparatus. In the conventional image processing apparatus, when printing is started, input data (PDL (page description language) data) 910 is transferred to an intermediate data generating module 911, and a PDL interpreter process, a drawing process (contour extraction) and the like are performed to the transferred data by the intermediate data generating module 911. Then, graphics data in each page is converted into data (hereinafter, called intermediate data) of a format suitable for a later-stage image forming process. The intermediate data might be called a display list or the like. The intermediate data is once stored in an intermediate data spooler 912, and then transferred to a later-stage image forming module 913. The image forming module loads pixel data into a memory based on information of the intermediate data. The pixel data loaded into the memory is once stored in a bitmap data buffer memory 914, and then transferred to a printer engine 916 via an engine I/F (interface) 915. The intermediate data generating module 911, the image forming module 113 and the engine I/F 915 are controlled by a controlling unit 900.
In a print system including the image processing apparatus, when the printer engine is started and thus printing is once started, the printer engine cannot easily be stopped. For this reason, even if any kind of data is input, it is necessary to supply the print data at certain speed. Therefore, in a case where the input data largely vary depending on time fluctuation, it is necessary to increase the amount of the data to be spooled and thus increase the memory size to be used for the spooler. However, the increase of the memory size is directly linked to the increase of the costs for the image processing apparatus.
In consideration of such a problem as above, the technique of changing the schedule of a print process (rendering process) by predicting the time necessary for the process is disclosed in, e.g., Japanese Patent Application Laid-Open No. 2006-155308, and a desired object can certainly be achieved by this technique. However, in case of actually trying to change over the processes based on such a predicted value, it can be understood that the prediction itself for process speed is not easy.
The present invention aims to provide image processing apparatus and method capable of performing high-speed printing while suppressing the increase of the memory size.
In case of changing the schedule of the print process by predicting the time necessary for the process, the information related to the number of graphics included in a page to be processed is obtained before the actual process is started. In general, there is a tendency that the time necessary for processing a page becomes longer in proportion to the number of graphics included in the relevant page. FIG. 3 is a graph indicating an example of the relation between the number of graphics included in each page of PDL data in test data and process time. It can be understood from FIG. 3 that the process time becomes longer comprehensively in proportion to the number of graphics. Besides, when the individual data are compared, it can be read that it is not easy to directly use the individual data for predicting the process time. For example, a page i includes 1500 graphic objects (figures) and it takes about 100 ms for processing this page, whereas a page j includes 2000 graphic objects and it takes about 50 ms for processing this page. Namely, in this example, the number of graphic objects of the page j is 4/3 times the number of graphic objects of the page i, but the process time for the page j is about ½ of the process time for the page i.
On the basis of such a verification result as above, the present inventor has performed the verification by simulation for the purpose of investigating the influence of diremption between the predicted time and the actual process time on the characteristic of the image processing apparatus.
FIG. 4 is a graph illustrating the result obtained when the numbers of initial spools necessary to prevent an engine stall in the image processing apparatus illustrated in FIG. 2 are inspected by the simulation.
In the graph of FIG. 4, the horizontal axis shows the percentage (heavy page content percentage) of pages for which the respective processes are heavy (hereinafter, also called heavy pages) in a job, and the vertical axis shows the number of pages necessary for the initial spool. Here, the heavy page implies the page for which the process load is heavy, and it is possible, depending on a use or the like of the image processing apparatus, to properly determine whether or not a certain page corresponds to the heavy page. Incidentally, the concrete definition of the heavy page is different depending on each condition. For example, in a printer for which printing speed of 100 PPM (page per minute) is required, the page for which it takes process time of one second or more can be defined as the heavy page. Besides, the page for which it takes process time equal to or longer than a threshold (1.5σ) properly set by grasping the process time group of each page in print data based on normal distribution for the purpose of abstraction might be defined as the heavy page. In the example of FIG. 4, the page for which it takes the process time of one second or more is defined as the heavy page.
In the illustrated simulation, the page process time is randomly generated, the prediction time in the case where accurate prediction is possible (mistake percentage: 0%) and the prediction times in the cases where accurate prediction is impossible (mistake percentages: 10%, 20%) are compared, and the differences in these cases are studied. As the basic operation of the image processing apparatus, in the case where the process page is the heavy page, the present inventor observed the actions of the apparatus by applying an acceleration process to the process time for the heavy page based on each prediction of page time. Here, in the simulation, the acceleration process was performed on the condition that the process was completed in half the time or so.
In FIG. 4, a line A (the double line including the square points) represents the number of initial spools in the case where the process prediction time before the print process is always correct, that is, the characteristic in the case where the prediction mistake percentage is 0%. A line B (the dashed line including the black triangular points) represents the characteristic in the case where the prediction mistake percentage is 10%, and a line C (the solid line including the white triangular points) represents the characteristic in the case where the prediction mistake percentage is 20%. Here, the mistake percentage indicates accuracy of the prediction time for the print process time. More specifically, the mistake percentage indicates the percentage of misprediction (i.e., the state that prediction became wrong by a certain value ±10% or more) in the total number of pages. Here, it is assumed that the number of pages which could be processed as predicted is P1, and the number of pages which could not be within the prediction is P2 (the number of prediction mistake pages). Then, the mistake percentage is given by “P2/(P1+P2)×100”.
According to the result of this simulation, in the case where the heavy page content percentage is about 14%, when the prediction mistake percentage is 0%, then the printer engine can operate without any stall if about 190 pages are stored as the number of initial spools. On the other hand, when the prediction mistake percentage is 10%, about 530 pages are necessary as the number of initial spools. Further, when the prediction mistake percentage is 20%, about 750 pages are necessary as the number of initial spools. That is, when the control is performed according to the result of the prediction of which the accuracy is not high, a large-sized memory is necessary for the spooler, so that the costs inevitably increase. In other words, since the spooler capacity has been determined experientially or experimentally in the conventional image processing apparatus, the waste costs have occurred without any analysis and devisal for the capacity reduction.